Application User Interface with Navigation Bar Showing Current and Prior Application Contexts

ABSTRACT

A graphical user interface for a portable electronic device includes an application display region that displays a current application context of an application and a navigation bar adjacent to the application display region. The navigation bar includes two horizontally adjacent regions, comprising a current context region for displaying an indicator of the current application context and a prior context region for displaying an indicator of an application context preceding the current application context. The application display region simulates shifting of the application display in a first direction upon detecting user selection of the prior context region, and simulates shifting of the application display in a second direction, opposite the first direction, upon detecting user selection of an application context different from the current application context and the prior application context.

RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 60/756,832, filed Jan. 5, 2006, entitled “Application User Interfacewith Navigation Bar Showing Current and Prior Application Contexts,”which application is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed embodiments relate generally to user interfaces, and moreparticularly, to an application user interface with a navigation bar foruse in a portable electronic device.

BACKGROUND

Portable electronic devices, such as mobile phones, personal digitalassistants (PDAs), etc., can include a multitude of applications.Through these applications, a user can perform many functions on thedevice. The user interacts with these applications via the userinterfaces of the applications. The user interface is the gatewaythrough which users receive not only content but also responses to useractions or behaviors, including user attempts to access a device'sfeatures or tools. The user interface, therefore, is an integral part inthe design of these applications and helps determine the ease of use,and thus the quality of the overall user experience, of such devices.

One challenge in the design of user interfaces for applications inportable devices involves navigation within an application. Applicationsin conventional devices often do not provide sensory feedback to theuser regarding which contexts of the application the user has recentlyused. Furthermore, whenever a user backtracks through the contexts of anapplication, the application often does not remind the user of thecontext to which he or she is backtracking. This lack of sensoryfeedback can be frustrating for a user who gets lost in the menustructure of an application and wishes to know where he or she is in theapplication.

Accordingly, there is a need for improved techniques for navigatingwithin an application in a portable electronic device.

SUMMARY

The above deficiencies and other problems associated with userinterfaces for portable devices are reduced or eliminated by including anavigation bar in these user interfaces.

A current application context of an application is displayed in anapplication display region of a display in a portable device. Anavigation bar is displayed adjacent to the application display region.In some embodiments, the navigation bar includes at least threehorizontally adjacent regions, including a current context region fordisplaying an indicator of a second application context, a prior contextregion for displaying an indicator of a first application context, and alink region for displaying an indicator of a third application context.Upon detection of user selection of the prior context region, operationis shifted to the first application context, including displaying in theprior context region of the navigation bar a fourth application context.The fourth application context includes an application context, if any,that preceded the first application context. Upon detection of userselection of the link region, operation is shifted to the thirdapplication context, including displaying in the prior context region ofthe navigation bar an indicator of the second application context.

In some embodiments, the navigation bar includes only the currentcontext region and the prior context region.

In some embodiments, the shifting operation includes simulating shiftingof the application display region in a first direction upon detectinguser selection of the prior context region, and includes simulatingshifting of the application display region in a second direction,opposite the first direction, upon detecting user selection of the linkregion. The first direction may be to the right and the second directionmay be to the left.

In another embodiment, a current application context of a firstapplication is displayed in an application display region of a displayof a portable device, the device having a menu button distinct from thedisplay. A navigation bar is displayed adjacent to the applicationdisplay region. The navigation bar includes at least three horizontallyadjacent regions, including the prior context region and the linkregion. Upon detection of user selection of the prior context region,operation of the device is shifted to the first application contextwithin the first application. Upon detection of user selection of thelink region, operation of the device is shifted to the secondapplication context within the first application. Upon detection of userselection of the menu button, operation of the device is shifted to theapplication selection context for selecting any of a predefined set ofapplications, including a plurality of second applications.

In another embodiment, a current application context of an applicationis displayed in an application display region of a display of a portabledevice. The navigation bar, including a list of indicators of recentlynavigated application contexts of the application including an indicatorof the current application context, is displayed adjacent to theapplication display region. Upon detection of user navigation to thefirst application context corresponding to the application contextpreceding the current application context, operation is shifted to thefirst application context and the indicator of the current applicationcontext is removed from the list. Upon detection of user navigation ofthe second application context corresponding to an application contextsucceeding the current application context, operation is shifted to thesecond application context and an indicator of the second applicationcontext is appended to the list and displayed in the navigation bar.

The aforementioned methods may be performed by a portable electronicdevice having a touch-sensitive display with a graphical user interface(GUI), one or more processors, memory and one or more modules, programsor sets of instructions stored in the memory for performing thesemethods. In some embodiments, the portable electronic device provides aplurality of functions, including wireless communication.

Instructions for performing the aforementioned methods may be includedin a computer program product configured for execution by one or moreprocessors.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned embodiments of theinvention as well as additional embodiments thereof, reference should bemade to the Description of Embodiments below, in conjunction with thefollowing drawings in which like reference numerals refer tocorresponding parts throughout the figures.

FIG. 1 is a block diagram illustrating a portable electronic device,according to some embodiments of the invention.

FIG. 2 is a diagram illustrating a display, according to someembodiments of the invention.

FIGS. 3-5 are flow diagrams illustrating processes for navigatingbetween application contexts of an application in a device, according tosome embodiments of the invention.

FIGS. 6A-6C are diagrams illustrating navigation to a precedingapplication context of an application, according to some embodiments ofthe invention.

FIGS. 7A-7C are diagrams illustrating navigation to a succeedingapplication context of an application, according to some embodiments ofthe invention.

FIGS. 8A-8C are diagrams illustrating navigation to a predefinedapplication context of an application, according to some embodiments ofthe invention.

FIGS. 9A-9B are diagrams illustrating navigation to an applicationselection context, according to some embodiments of the invention.

DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one of ordinary skill in the art that the present inventionmay be practiced without these specific details. In other instances,well-known methods, procedures, components, and circuits have not beendescribed in detail so as not to unnecessarily obscure aspects of theembodiments.

Embodiments for displaying a current application context in anapplication region of a display in a device are described. The displaymay be in a portable device. The display may be a touch-sensitivedisplay. In one embodiment, a navigation bar is displayed adjacent to anapplication display region. In some embodiments, the navigation barincludes at least three horizontally adjacent context regions fordisplaying indicators of application contexts, including a currentapplication context region, a prior context region, and a succeedingcontext region. The prior context region includes a first link regionfor displaying an indicator of one or more prior application contexts.The succeeding context region includes a second link region fordisplaying an indicator of one or more additional application contexts.The user navigates through the application contexts by selection of anappropriate context region. The navigation bar is updated accordingly,including displaying links to one or more prior or additionalapplication contexts.

In some embodiments, the user may navigate using a menu button that isdistinct from the display. Upon detection of user selection of the menubutton, operation of the device is shifted to an application selectioncontext for selecting any of a predefined set of applications, includinga plurality of additional applications.

Attention is now directed towards embodiments of the methods and therelated hardware for implementing them. FIG. 1 is a block diagramillustrating a portable electronic device, according to some embodimentsof the invention. The device 100 includes a memory 102, a memorycontroller 104, one or more processing units (CPU's) 106, a peripheralsinterface 108, RF circuitry 112, audio circuitry 114, a speaker 116, amicrophone 118, an input/output (I/O) subsystem 120, a touch screen 126,other input or control devices 128 and an external port 148. Thesecomponents communicate over the one or more buses 110, which may includea combination of data lines, address lines, and control signals. Thedevice 100 can be any portable electronic device, including but notlimited to a handheld computer, a tablet computer, a mobile phone, amedia player, a personal digital assistant (PDA), or the like, includinga combination of two or more of these items. It should be appreciatedthat the device 100 is only one example of a portable electronic device100, and that the device 100 may have more or fewer components thanshown, or a different configuration of components. The variouscomponents shown in FIG. 1 may be implemented in hardware, software or acombination of both hardware and software, including one or more signalprocessing and/or application specific integrated circuits.

The memory 102 may include high speed random access memory or othervolatile memory and may also include non-volatile memory, such as one ormore magnetic disk storage devices, flash memory devices, or othernon-volatile solid state memory devices. In some embodiments, the memory102 may further include storage remotely located from the one or moreprocessors 106, for instance network attached storage accessed via theRF circuitry 112 or external port 148 and a communications network (notshown) such as the Internet, intranet(s), Local Area Networks (LANs),Wide Local Area Networks (WLANs), Storage Area Networks (SANs) and thelike, or any suitable combination thereof. Access to the memory 102 byother components of the device 100, such as the CPU 106 and theperipherals interface 108, may be controlled by the memory controller104.

The peripherals interface 108 couples the input and output peripheralsof the device to the CPU 106 and the memory 102. The one or moreprocessors 106 run various software programs and/or sets of instructionsstored in the memory 102 to perform various functions for the device 100and to process data.

In some embodiments, the peripherals interface 108, the CPU 106, and thememory controller 104 may be implemented on a single chip, such as achip 111. In some other embodiments, they may be implemented on separatechips.

The RF (radio frequency) circuitry 112 receives and sendselectromagnetic waves. The RF circuitry 112 converts electrical signalsto/from electromagnetic waves and communicates with communicationsnetworks and other electronic devices via the electromagnetic waves. TheRF circuitry 112 may include well-known circuitry for performing thesefunctions, including but not limited to an antenna system, an RFtransceiver, one or more amplifiers, a tuner, one or more oscillators, adigital signal processor, a CODEC chipset, a subscriber identity module(SIM) card, memory, and so forth. The RF circuitry 112 may communicatewith the networks, such as the Internet, also referred to as the WorldWide Web (WWW), an Intranet and/or a wireless network, such as acellular telephone network, a wireless local area network (LAN) and/or ametropolitan area network (MAN), and other devices by wirelesscommunication. The wireless communication may use any of a plurality ofcommunications standards and technologies that are well known in theart, including but not limited to Global System for MobileCommunications (GSM), Enhanced Data GSM Environment (EDGE), widebandcode division multiple access (W-CDMA), code division multiple access(CDMA), time division multiple access (TDMA), Bluetooth, WirelessFidelity (Wi-Fi) (e.g., 802.11a, 802.11b, 802.11g and/or 802.11nstandards), voice over Internet Protocol (VoIP), Wi-MAX, a protocol foremail, instant messaging, and/or a short message service (SMS), or anyother suitable communication protocol, including communication protocolsnot yet developed as of the filing date of this document.

The audio circuitry 114, the speaker 116, and the microphone 118 providean audio interface between a user and the device 100. The audiocircuitry 114 receives audio data from the peripherals interface 108,converts the audio data to an electrical signal, and transmits theelectrical signal to the speaker 116. The speaker converts theelectrical signal to human-audible sound waves. The audio circuitry 114also receives electrical signals converted by the microphone 116 fromsound waves. The audio circuitry 114 converts the electrical signal toaudio data and transmits the audio data to the peripherals interface 108for processing. Audio data may be may be retrieved from and/ortransmitted to the memory 102 and/or the RF circuitry 112 by theperipherals interface 108. In some embodiments, the audio circuitry 114also includes a headset jack (not shown). The headset jack provides aninterface between the audio circuitry 114 and removable audioinput/output peripherals, such as output-only headphones or a headsetwith both output (headphone for one or both ears) and input(microphone).

The I/O subsystem 120 provides the interface between input/outputperipherals on the device 100, such as the touch screen 126 and otherinput/control devices 128, and the peripherals interface 108. The I/Osubsystem 120 includes a touch screen controller 122 and one or moreinput controllers 124 for other input or control devices. The one ormore input controllers 124 receives/sends electrical signals from/toother input or control devices 128. The other input/control devices 128may include physical buttons (e.g., push buttons, rocker buttons, 5-waynavigation buttons, etc.), dials, slider switches, sticks, and so forth.

The touch screen 126 provides both an output interface and an inputinterface between the device and a user. The touch screen controller 122receives/sends electrical signals from/to the touch screen 126. Thetouch screen 126 displays visual output to the user. The visual outputmay include text, graphics, video, and any combination thereof. Some orall of the visual output may correspond to user-interface objects,further details of which are described below.

The touch screen 126 may also accept input from the user based on hapticand/or tactile contact. The touch screen 126 forms a touch-sensitivesurface that accepts user input. The touch screen 126 and the touchscreen controller 122 (along with any associated modules and/or sets ofinstructions in the memory 102) detects contact (and any movement orrelease of the contact) on the touch screen 126 and converts thedetected contact into interaction with user-interface objects that aredisplayed on the touch screen. In an exemplary embodiment, a point ofcontact between the touch screen 126 and the user corresponds to one ormore digits of the user. The touch screen 126 may use LCD (liquidcrystal display) technology, or LPD (light emitting polymer display)technology, although other display technologies may be used in otherembodiments. The touch screen 126 and touch screen controller 122 maydetect contact and any movement or release thereof using any of aplurality of touch sensitivity technologies that are well known in theart, including but not limited to capacitive, resistive, infrared, andsurface acoustic wave technologies, as well as other proximity sensorarrays or other elements for determining one or more points of contactwith the touch screen 126. The touch-sensitive display may be analogousto the multi-touch sensitive tablets described in the following U.S.Pat. Nos.: 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.),and/or 6,677,932 (Westerman), and/or U.S. Patent Publication2002/0015024A1, each of which is hereby incorporated by reference.However, the touch screen 126 displays visual output from the portabledevice, whereas touch sensitive tablets do not provide visual output.The touch screen 126 may have a resolution in excess of 100 dpi. In anexemplary embodiment, the touch screen 126 may have a resolution ofapproximately 168 dpi. The user may make contact with the touch screen126 using any suitable object or appendage, such as a finger, stylus,pen, etc.

User-interface objects are objects that may be displayed on the touchscreen 126, which correspond to a user interface of the device 100.User-interface objects may include non-interactive objects that mayconvey information and/or contribute to the look and feel of the userinterface, and interactive objects that convey information, contributeto the look and feel of the user interface, and/or activate ordeactivate a device function upon interaction by the user. A userinteracts with the interactive user-interface objects by making, moving,and/or releasing contact with the touch screen at locationscorresponding to the areas of the objects with which she wishes tointeract. Examples of user-interface objects include, withoutlimitation, soft keys (also called “soft buttons” or “virtual buttons”),pull-down menus, scroll bars, icons, radio buttons, check boxes, textboxes, cursors, and so forth.

In some embodiments, in addition to the touch screen, the device 100 mayinclude a touchpad (not shown) for activating or deactivating particularfunctions. In some embodiments, the touchpad is a touch-sensitive areaof the device that, unlike the touch screen, does not display visualoutput. The touchpad may be a touch-sensitive surface that is separatefrom the touch screen 126 or an extension of the touch-sensitive surfaceformed by the touch screen 126.

The device 100 also includes a power system 130 for powering the variouscomponents. The power system 130 may include a power management system,one or more power sources (e.g., battery, alternating current (AC)), arecharging system, a power failure detection circuit, a power converteror inverter, a power status indicator (e.g., a light-emitting diode(LED)) and any other components associated with the generation,management and distribution of power in portable devices.

In some other embodiments, the display 126 may not be touch-sensitive.In these embodiments, the touch screen controller 122 may be omitted anda user of the device may use the other input/control devices 128 tointeract with the device.

In some embodiments, the software components include an operating system132, a communication module (or set of instructions) 134, acontact/motion module (or set of instructions) 138, a graphics module(or set of instructions) 140, and one or more applications (or set ofinstructions) 142.

The operating system 132 (e.g., Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks) includesvarious software components and/or drivers for controlling and managinggeneral system tasks (e.g., memory management, storage device control,power management, etc.) and facilitates communication between varioushardware and software components.

The communication module 134 facilitates communication with otherdevices over one or more external ports 148 and also includes varioussoftware components for handling data received by the RF circuitry 112and/or the external port 148. The external port 148 (e.g., UniversalSerial Bus (USB), FIREWIRE, etc.) is adapted for coupling directly toother devices or indirectly over a network (e.g., the Internet, wirelessLAN, etc.).

The contact/motion module 138 detects contact with the touch screen 126,in conjunction with the touch screen controller 122. The contact/motionmodule 138 includes various software components for performing variousoperations related to detection of contact with the touch screen 122,such as determining if contact has occurred, determining if there ismovement of the contact and tracking the movement across the touchscreen, and determining if the contact has been released (i.e., if thecontact has ceased). In some embodiments, the contact/motion module 126and the touch screen controller 122 also detects contact on thetouchpad.

The graphics module 140 includes various known software components forrendering and displaying graphics on the touch screen 126. Note that theterm “graphics” includes any object that can be displayed to a user,including without limitation text, web pages, icons (such asuser-interface objects including soft keys), digital images, videos,animations and the like.

The one or more applications 142 can include any applications installedon the device 100, including without limitation, a browser, addressbook, contact list, email, instant messaging, word processing, keyboardemulation, widgets, JAVA-enabled applications, encryption, digitalrights management, voice recognition, voice replication, locationdetermination capability (such as that provided by the globalpositioning system (GPS)), a music player (which plays back recordedmusic stored in one or more files, such as MP3 or AAC files), etc. Insome embodiments, each application includes one or more applicationcontexts 144.

One or more navigation modules (or set of instructions) 146 manage thenavigation between application contexts 144. In some embodiments, eachapplication includes its own navigation module 146. In otherembodiments, all of the applications share a common navigation module146. The navigation module 146 may maintain a list of recently navigatedapplication contexts within an application, or some other form ofnavigation history. The navigation module 146 also may display anavigation bar on the touch screen 126 and/or a display. The navigationbar may include at least a portion of the list of recently navigatedapplication contexts 144 within whichever application is active at themoment.

In some embodiments, the device 100 may include the functionality of anMP3 player, such as an iPod (trademark of Apple Computer, Inc.). Thedevice 100 may, therefore, include a 36-pin connector that is compatiblewith the iPod. In some embodiments, the device 100 may include one ormore optional optical sensors (not shown), such as CMOS or CCD imagesensors, for use in imaging applications.

In some embodiments, a touchpad, when touched by the user, navigates thedevice 100 to a main, home, or root menu from any user interface orapplication context 144 that is active on the device 100. In suchembodiments, the touchpad may be referred to as a “menu button.” In someother embodiments, the menu button may be a physical push button orother physical input/control device, or even a predefined soft key onthe touch screen, instead of a touchpad.

Attention is now directed towards embodiments of processes for providingapplication contexts 144. An application includes one or moreapplication contexts 144. Each application context 144 of an applicationincludes a user interface of the application that allows the user toactivate or deactivate a predefined set of operations on the device 100and navigate to a predefined set of other application contexts withinthe application. The history of a user's navigation between applicationcontexts 144 may be maintained in a navigation history or log. In someembodiments, the navigation history is a list of navigated-to contexts.The navigation history includes indicators of the contexts to which theuser has navigated in the interval during which the application iscontinuously active (hereinafter the “application session,” from thetime when the application was activated up to and including thecurrently active context). In some embodiments, the navigation historyis cleared (e.g., by removing the list from memory) when the applicationsession ends. In some embodiments, when the same application isactivated at another time, the navigation history for that applicationsession does not include the navigation history from past sessions.Instead, a new list is generated for each application session.

At any time in which an application 142 is active in the device 100, anapplication context 144 is active within the application. That contextis the current application context (hereinafter “current context”).Application contexts preceding the current context in the navigationhistory are the preceding application contexts (hereinafter “precedingcontext”). An application context to which a user navigates from thecurrent context, but which is not one of the preceding contexts in thenavigation history, is a succeeding application context (hereinafter“succeeding context”). Whenever a user navigates to a succeedingcontext, that succeeding context becomes the new current context (andadded to the navigation history) and the formerly current contextbecomes a preceding context. Whenever a user navigates to a precedingcontext, that preceding context becomes the new current context.

In some embodiments, indicators may be removed from the navigationhistory as the user navigates to preceding contexts (backtracks) withinthe history. For example, if a user backtracks from current context A toa preceding context B, indicators of the contexts in the history betweencontext A and context B, including context A, are removed from thehistory.

In some embodiments, the navigation history may be analogies to alast-in, first-out (e.g., a stack) data structure. The current contextis always the topmost element of the stack. Whenever a user navigates toa succeeding context, an indicator of the succeeding context is pushedonto the navigation history “stack” as the new current context. Whenevera user navigates to an immediately preceding context, an indicator ofthe formerly current context is popped off of the stack and theindicator of the preceding context, as the new current context, is thenew topmost element in the navigation history “stack.”

It should be appreciated that when an application 142 is activated, theapplication may default to an initial context. That initial context isthe initial current context. Since there is no previous context to whichthe user has navigated within the same application session, thenavigation history includes no preceding contexts and includes only theinitial context as the current context, until the user navigates to anysucceeding context.

In some embodiments, the “main menu” may be an application selectioncontext from which a user may select an application from a plurality ofapplications. Upon the user selection of a respective application, thedevice 100 activates (runs) the selected application and displays a userinterface of the selected application on a display, such as the touchscreen 126. The application selection context may include graphicalrepresentations (e.g., icons) of the applications, a textual list of theapplications, or any combination thereof. The user selects anapplication by selecting the graphical representation or the textualindicator of the desired application.

FIG. 2 is a diagram illustrating a display 214 showing an applicationcontext and a navigation bar, according to some embodiments of theinvention. A device 200 includes the display 214 with a GUI. In someembodiments, the display 214 is a touch screen and the user may interactwith the user interfaces of the application contexts and make selectionsby making contact with the touch screen. In other embodiments, thedisplay 214 is not touch sensitive and the user may interact with theuser interfaces and make selections via other input/control devices,such as push buttons, 5-way navigation buttons, and so forth. In someembodiments, the device 200 also includes a menu button 201, which maybe a touchpad, physical button, or any other suitable input/controldevice.

An application context of an application may be displayed in the display214. The application context that is displayed in the display 214 is thecurrent context. A title bar 202 may be displayed to display labels ofthe active application and/or of the current context. An exemplarycurrent context 206 for device 200 is a list within a music playerapplication of songs organized by artist. It should be appreciated thatthe application contexts shown for the device 200 and in subsequentembodiments are merely exemplary. Applications and application contextsmay take many different forms and be associated with a wide variety offunctions and operations.

A navigation bar 204 may also be displayed. The navigation bar 204 showsat least a portion of the navigation history for the current applicationsession. The portion of the navigation history that is shown includesthe current context and up to a predefined number of preceding contexts,starting with the immediately preceding context and continuing onsequentially, in the order as recorded in the navigation history. Insome embodiments, the navigation bar only shows indicators of thecurrent context and of the immediately preceding context.

In some embodiments, the navigation bar includes three regions: a priorcontext region, a current context region, and a link region. Each regionincludes an indicator or label for a context. The current context region210 displays an indicator or label 218 for the current context 206.

The prior context region 208 displays an indicator or label 216 for theimmediately preceding context (i.e., the application context that waslast active before the user navigated to the current context). The usermay select the prior context region 208 (e.g., if the display 214 is atouch screen, by touching the display 214 at the location of the priorcontext region 208) to navigate to the application context indicated bythe label 216, namely to the immediately preceding context. Uponselection of the prior context region 208, the device 200 shiftsoperation to the immediately preceding context; and the immediatelypreceding context is activated. The preceding context becomes the newcurrent context.

The link region 212 displays an indicator or label 220 for a predefinedapplication context. The user may select the link region 212 (e.g., ifthe display 214 is a touch screen, by touching the display 214 at thelocation of the link region 212) to navigate to the predefinedapplication context, which is indicated by the label 220. Upon selectionof the link region 212, the device 200 shifts operation to (activates)the predefined application context and that predefined applicationcontext becomes the new current context. In some embodiments, thepredefined application context to which the link region 212 links mayvary based on what the current context is, what other contexts wereactive before the current application context, what other contexts arerunning in the background, and any combination thereof. That is, thelink region 212 may be a context sensitive link to an applicationcontext, and the application context to which the link region 212 islinked changes based on the where the user is in the application. Forexample, in a music player application, the link region 212 may belinked to a player that controls context for a song if that song isplaying in the background and to a music player options context if nosong is playing at all. In some embodiments, for email and othermessaging applications, link region 212 may contain “Previous” and“Next” icons for cycling through messages in a current mailbox context.

Whenever a user first activates an application on the device 200, theapplication automatically displays an initial context as the currentcontext. Since that is the first context within the application that isactive, there is no preceding context that can be shown in the priorcontext region 208. In such circumstances, the prior context region 208maybe omitted from the navigation bar 204. The current context region210 and the link region 212 may be resized to occupy the navigation bararea left unoccupied by the absence of the prior context region.

FIG. 3 is a flow diagram illustrating a process for navigating betweenapplication contexts of an application in a device, according to someembodiments of the invention. The current context of an application isdisplayed (302). The device is operating in the displayed currentcontext. A navigation bar is displayed (304) with a prior contextregion, a current context region, and a link region. A user may selectthe prior context region or the link region from the navigation bar, orselect an object in the current context that shifts operation of thedevice to a succeeding context. In some embodiments, the navigation baris not displayed (e.g., the navigation bar fades out, hides, orotherwise becomes invisible) if the touchscreen has not been touched fora predetermined time, but the navigation bar reappears and is displayedwhen the touchscreen is touched. For example, if the application is aweb browser, the navigation bar may fade out after 2-5 seconds, therebyallowing the touchscreen to display more of a web page until the usertouches the screen again.

If the user selects the prior context region, the device detects theselection of the prior context region (306). The device shifts operationto the application context indicated in the prior context region, whichis the immediately preceding context (308). The device also simulatesshifting of the application display in a first direction (310). In someembodiments, that first direction is to the right. That is, the userinterface of the preceding context slides into the display from the leftside of the display, simulating the effect of the display as a rightwardsliding window.

If the user selects an object in the current application context thatshifts operation of the device to a succeeding context, the devicedetects that selection (312). The device shifts operation to thatsucceeding context (314). The device also simulates shifting of theapplication display in a second direction that is opposite from thefirst direction described above (316). In some embodiments, that seconddirection is to the left. That is, the user interface of the succeedingcontext slides into the display from the right side of the display,simulating the effect of the display as a leftward sliding window.

If the user selects the link region, the device detects that selection(318). The device shifts operation to the predefined application contextindicated in the link region (320). The device also simulates shiftingof the application display in a second direction that is opposite fromthe first direction described above (324). In some embodiments, thatsecond direction is to the left. That is, the user interface of thepredefined application context slides into the display from the rightside of the display, simulating the effect of the display as a leftwardsliding window.

FIG. 4 is a flow diagram illustrating a second process for navigatingbetween application contexts of an application in a device, according tosome embodiments of the invention. The current context of an activeapplication is displayed (402). In some embodiments, the device alsoincludes a menu button. A navigation bar, which includes a prior contextregion, a current context region, and a link region, is displayed (404).At this point, a user may select the prior context region, the linkregion, or the menu button.

If the user selects the prior context region, the device detects thatselection (406). The device shifts operation to a first applicationcontext indicated in the prior context region (408). In someembodiments, that first application context is the immediately precedingcontext. In some embodiments, the device also simulates shifting of theapplication display in a first direction, similar to operation 310 (FIG.3).

If the user selects the link region, the device detects that selection(414). The device shifts operation to a second application contextindicated in the link region (416). In some embodiments, that secondapplication context is a predefined application context of the activeapplication. In some embodiments, the device also simulates shifting ofthe application display in a second direction that is opposite of thefirst direction, similar to operation 324 as described above.

If the user selects the menu button, the device detects that selection(410). The device shifts operation to an application selection context(412). In some embodiments, the active application is deactivated aspart of the shift of operation to the application selection context. Insome other embodiments, the active application continues running in thebackground while the application selection context is active. A userinterface of the application selection context is displayed. From theapplication selection context, the user may select and activate anapplication from a plurality of applications. The plurality ofapplications may be represented in the application selection context bygraphical representation (e.g., icons), text, or a combination thereof.

FIG. 5 is a flow diagram illustrating a third process for navigatingbetween application contexts of an application in a device, according tosome embodiments of the invention. The device displays a currentapplication context of an active application (502). A navigation bar isdisplayed (504). The navigation bar displays at least a portion of alist of indicators of application contexts to which the user hadnavigated during the current interval in which the application iscontinuously active. In some embodiments, that list is the navigationhistory. In some embodiments, the displayed portion of the list includesthe current application context. At this point, the user may navigate toother application contexts.

If the user navigates to a first application context that corresponds toa preceding application context, the device detects the navigation tothat first context (506). The device shifts operation to that firstapplication context and removes the indicator of the current applicationcontext from the list of application context indicators and from thenavigation bar (508). The first application context becomes the “new”current application context.

If the user navigates to a second application context that correspondsto a succeeding application context, the device detects the navigationto that second context (510). The device shifts operation to that secondapplication context and appends an indicator of the second applicationcontext to the list of application context indicators (512). Theindicator of the second application context is displayed in thenavigation bar, as the second application context becomes the “new”current application context.

Attention is now directed towards embodiments of navigating to differentapplication contexts. FIGS. 6A-6C are diagrams illustrating navigationto a preceding application context of an application, according to someembodiments of the invention. Continuing with the music playerapplication example described above, in relation to FIG. 2, FIG. 6Ashows a user, represented by the hand 222 (not drawn to scale in thefigure), selecting the prior context region 208 of the navigation bar204. In embodiments where the display 214 is a touch-sensitive display,the user may select the prior context region 208 by touching the display214 at the area of the prior context region 208. In embodiments wherethe display 214 is not touch sensitive, the selection may be made viaother input/control devices, such as push buttons and the like.

In the prior context region 208, the indicator 216 shows that theimmediately preceding application context 224 (FIG. 6B) is labeled ascontext “A.” It should be appreciated, however, that the applicationcontexts, labels, and so forth shown in FIG. 6 and in subsequentembodiments are merely exemplary.

FIG. 6B shows the device shifting operation to context A and simulatingshifting of the display to the user interface of context A. The (former)current application context 206, labeled as context “B” by the indicator218 (FIG. 6A), slides out of view on the right side of the display 214.Concurrently, the (new) current application context A 224 slides intoview from the left side of the display 214. The indicators in thenavigation bar also shift. The indicator 218 for the (former) currentapplication context has been removed from the navigation bar. Theindicator 216 for context A slides into the current context region 210and becomes the indicator for the new current application context. Anindicator 226 for a context region that immediately precedes context A,labeled as “C” by the indicator 226, slides into the prior contextregion 208 from the left side of the display 214.

FIG. 6C shows the display 214 after the completion of the shifting ofthe operation to context A. Indicator 216 occupies the current contextregion 210 and indicator 226 occupies the prior context region 208.Context A 224 is active and is displayed in the display 214. The labelin the title bar 202 has also changed to reflect the new currentapplication context. In FIGS. 6A-6C, the label 220 in link region 212(“X”) remains unchanged as the current context is changed. However, asdiscussed above, in some embodiments, the label 220 in link region 212may change as the current application context changes. That is, the linkregion 212 may be a context sensitive link to an application context,and the application context to which the link region 212 is linkedchanges based on the where the user is in the application.

In situations where the indicated context in the selected prior contextregion is the initial context, the prior context region may be omittedfrom the navigation bar because there is no preceding context to beindicated in the prior context region once the initial context becomesthe current context.

FIGS. 7A-7C are diagrams illustrating navigation to a succeedingapplication context of an application, according to some embodiments ofthe invention. FIG. 7A shows a user, represented by the hand 222 (notdrawn to scale in the figure), selecting a song from the currentapplication context 206 of a list of songs sorted by artist. Selectionof a song from the list shifts operation of the device to a succeedingcontext in the active application, such as a player controls context forthe selected song. In embodiments where the display 214 is atouch-sensitive display, the user may make the selection by touching thedisplay 214 at the area of the name of the song. In embodiments wherethe display 214 is not touch sensitive, the selection may be made viaother input/control devices, such as buttons and the like.

FIG. 7B shows the device shifting operation to the succeedingapplication context and simulating shifting the display to the playercontrols context. The current context 206 slides out of view on the leftside of the display 214. Concurrently, the player controls context 230slides into view from the right side of the display 214. In thenavigation bar 204, the indicator 216 for the preceding applicationcontext slides out of view on the left side of the display 214. Theindicator 218 for the formerly current context slides into the priorcontext region 208. A new indicator 228 for the player controls context,labeled as context “D,” appears in the current context region 210.

FIG. 7C shows the display 214 after the completion of the shifting ofthe operation to context D. Indicator 228 occupies the current contextregion 210 and indicator 218 occupies the prior context region 208.Context D 230 is active and is displayed in the display 214. The labelin the title bar 202 has also changed to reflect the new currentapplication context.

FIGS. 8A-8C are diagrams illustrating navigation to a predefinedapplication context of an application via a link in a navigation bar,according to some embodiments of the invention. FIG. 8A shows a user,represented by the hand 222 (not drawn to scale in the figure),selecting the link region 212 in the navigation bar 204. Selection ofthe link region shifts operation of the device to a predefinedapplication context within the active application. In embodiments wherethe display 214 is a touch-sensitive display, the user may make theselection by touching the display 214 at the area of the link region212. In embodiments where the display 214 is not touch sensitive, theselection may be made via other input/control devices, such as pushbuttons and the like.

FIG. 8B shows the device shifting operation to the predefinedapplication context and simulating shifting the display to thepredefined application context, labeled by the indicator 220 as context“X.” The current application context 206 slides out of view on the leftside of the display 214. Concurrently, context X 232 slides into viewfrom the right side of the display 214. In the navigation bar 204, theindicator 216 for the preceding context slides out of view on the leftside of the display 214. The indicator 218 for the current contextslides into the prior context region 208. An indicator 220 for context Xslides into the current context region 212.

FIG. 8C shows the display 214 after the completion of the shifting ofthe operation to context X. Indicator 220 occupies the current contextregion 210 and indicator 218 occupies the prior context region 208.Context X 232 is active and is displayed in the display 214. The labelin the title bar 202 has also changed to reflect the new currentapplication context.

As described above, the link region 212 may be context sensitive and thepredefined context to which the link region 212 links may vary based onwhat the current context is, what other operations of the application isrunning in the background, and so forth. Thus, an indicator 221 for adifferent predefined context may be inserted into the link region 212.As shown in FIGS. 8B and 8C, the new indicator 221, associated withanother predefined application context labeled as “Y,” is shown in thelink region 212.

FIGS. 9A-9B are diagrams illustrating navigation to an applicationselection context via selection of a menu button, according to someembodiments of the invention. FIG. 9A shows a user, represented by thehand 222 (not drawn to scale in the figure), selecting the menu button201 on the device 200. In response, the device 200 shifts operation fromthe active application to an application selection context 209 (FIG.9B), from which the user may select and activate an application from aplurality of applications. FIG. 9B shows an exemplary applicationselection context 209 that may be displayed on the display 214. Thenavigation bar 204 is no longer displayed because the (formerly) activeapplication is no longer active. The application selection context 209includes a (textual and/or graphical) list of a plurality ofapplications, from which the user may select one for activation.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A method of navigating between application contexts in a portabledevice, comprising: displaying a current application context of anapplication in an application display region of a display; displaying anavigation bar adjacent to the application display region, thenavigation bar including at least three horizontally adjacent regions,comprising a current context region for displaying an indicator of asecond application context comprising the current application context, aprior context region for displaying an indicator of a first applicationcontext comprising an application context preceding the secondapplication context, and a link region for displaying an indicator of athird application context; upon detecting user selection of the priorcontext region, shifting operation of the portable device to the firstapplication context, including displaying in the prior context region ofthe navigation bar a fourth application context comprising anapplication context of the application, if any, that preceded the firstapplication context; and upon detecting user selection of the linkregion, shifting operation of the portable device to the thirdapplication context, including displaying in the prior context region ofthe navigation bar an indicator of the second application context. 2.The method of claim 1, wherein shifting operation of the portable deviceincludes simulating shifting of the application display region in afirst direction upon detecting user selection of the prior contextregion, and includes simulating shifting of the application displayregion in a second direction, opposite the first direction, upondetecting user selection of the link region.
 3. The method of claim 1,wherein shifting operation of the portable device includes simulatingshifting of the application display region to the right upon detectinguser selection of the prior context region, and includes simulatingshifting of the application display region to the left upon detectinguser selection of the link region.
 4. The method of claim 1, furthercomprising: displaying in the prior context region a first labelcorresponding to the first application context; displaying in thecurrent context region a second label corresponding to the secondapplication context; and displaying in the link region a third labelcorresponding to the third application context.
 5. A method ofnavigating between application contexts in a portable device thatincludes a menu button that is distinct from a display, comprising:displaying a current application context of a first application in anapplication display region of the display; displaying a navigation baradjacent to the application display region, the navigation bar includingat least three horizontally adjacent regions, including a prior contextregion and a link region; upon detecting user selection of the priorcontext region, shifting operation of the portable device to a firstapplication context within the first application; upon detecting userselection of the link region, shifting operation of the portable deviceto a second application context within the first application; and upondetecting user selection of the menu button, shifting operation of theportable device to an application selection context for selecting any ofa predefined set of applications, including a plurality of secondapplications.
 6. The method of claim 5, wherein the first applicationcontext comprises an application context preceding the currentapplication context.
 7. A method of navigating between applicationcontexts in a portable device, comprising: displaying a currentapplication context of an application in an application display regionof a display; displaying a navigation bar adjacent to the applicationdisplay region, including displaying in the navigation bar a list ofindicators of recently navigated application contexts of the applicationincluding an indicator of the current application context; upondetecting user navigation to a first application context correspondingto an application context preceding the current application context;shifting operation of the portable device to the first applicationcontext, including removing the indicator of the current applicationcontext from the list; and upon detecting user navigation of a secondapplication context corresponding to an application context succeedingthe current application context, shifting operation of the portabledevice to the second application context, including appending anindicator of the second application context to the list and displayingthe indicator of the second application context in the navigation bar.8. A portable electronic device, comprising: a display; memory; anapplication stored in the memory; one or more processors; and one ormore modules stored in the memory and configured for execution by theone or more processors, the one or more modules comprising instructions:to display a current application context of the application in anapplication display region of the display; to display a navigation baradjacent to the application display region, the navigation bar includingat least three horizontally adjacent regions, comprising a currentcontext region for displaying an indicator of a second applicationcontext comprising the current application context, a prior contextregion for displaying an indicator of a first application contextcomprising an application context preceding the second applicationcontext, and a link region for displaying an indicator of a thirdapplication context; to shift operation of the portable device, uponuser selection of the prior context region, to the first applicationcontext, including instructions to display in the prior context regionof the navigation bar a fourth application context comprising anapplication context of the application, if any, that preceded the firstapplication context; and to shift operation of the portable device, upondetecting user selection of the link region, to the third applicationcontext, including instructions to display in the prior context regionof the navigation bar an indicator of the second application context. 9.The portable device of claim 8, further including instructions: tosimulate shifting of the application display region in a first directionupon detecting user selection of the prior context region; and tosimulate shifting of the application display region in a seconddirection, opposite the first direction, upon detecting user selectionof the link region.
 10. The portable device of claim 8, furtherincluding instructions: to simulate shifting of the application displayregion to the right upon detecting user selection of the prior contextregion; and to simulate shifting of the application display region tothe left upon detecting user selection of the link region.
 11. Theportable device of claim 8, further comprising instructions: to displayin the prior context region a first label corresponding to the firstapplication context; to display in the current context region a secondlabel corresponding to the second application context; and to display inthe link region a third label corresponding to the third applicationcontext.
 12. A portable electronic device, comprising: a display;memory; a plurality of applications stored in the memory, including afirst application and a plurality of second applications; a menu button;one or more processors; and one or more modules stored in the memory andconfigured for execution by the one or more processors, the one or moremodules comprising instructions: to display a current applicationcontext of the first application in an application display region of adisplay; to display a navigation bar adjacent to the application displayregion, the navigation bar including at least three horizontallyadjacent regions, including a prior context region and a link region; toshift operation of the portable device, upon detecting user selection ofthe prior context region, to a first application context within thefirst application; to shift operation of the portable device, upondetecting user selection of the link region, to a second applicationcontext within the first application; and to shift operation of theportable device, upon detecting user selection of the menu button, to anapplication selection context for selecting any of a predefined set ofapplications, including a plurality of second applications.
 13. Aportable electronic device, comprising: a display; memory; anapplication stored in the memory; one or more processors; and one ormore modules stored in the memory and configured for execution by theone or more processors, the one or more modules comprising instructions:to display a current application context of the application in anapplication display region of a display; to display a navigation baradjacent to the application display region, including instructions todisplay in the navigation bar a list of indicators of recently navigatedapplication contexts of the application including an indicator of thecurrent application context; to shift operation of the portable device,upon detecting user navigation to a first application contextcorresponding to an application context preceding the currentapplication context, to the first application context, includinginstructions to remove the indicator of the current application contextfrom the list; and to shift operation of the portable device, upondetecting user navigation of a second application context correspondingto an application context succeeding the current application context, tothe second application context, including instructions to append anindicator of the second application context to the list and displayingthe indicator of the second application context in the navigation bar.14. A computer program product for use in conjunction with a portabledevice, the computer program product comprising a computer readablestorage medium and a computer program mechanism embedded therein, thecomputer program mechanism comprising instructions for: displaying acurrent application context of an application in an application displayregion of a display; displaying a navigation bar adjacent to theapplication display region, the navigation bar including at least threehorizontally adjacent regions, comprising a current context region fordisplaying an indicator of a second application context comprising thecurrent application context, a prior context region for displaying anindicator of a first application context comprising an applicationcontext preceding the second application context, and a link region fordisplaying an indicator of a third application context; upon detectinguser selection of the prior context region, shifting operation of theportable device to the first application context, including displayingin the prior context region of the navigation bar a fourth applicationcontext comprising an application context of the application, if any,that preceded the first application context; and upon detecting userselection of the link region, shifting operation of the portable deviceto the third application context, including displaying in the priorcontext region of the navigation bar an indicator of the secondapplication context.
 15. A computer program product for use inconjunction with a portable device, the computer program productcomprising a computer readable storage medium and a computer programmechanism embedded therein, the computer program mechanism comprisinginstructions for: displaying a current application context of a firstapplication in an application display region of a display; displaying anavigation bar adjacent to the application display region, thenavigation bar including at least three horizontally adjacent regions,including a prior context region and a link region; upon detecting userselection of the prior context region, shifting operation of theportable device to a first application context within the firstapplication; upon detecting user selection of the link region, shiftingoperation of the portable device to a second application context withinthe first application; and upon detecting user selection of the menubutton, shifting operation of the portable device to an applicationselection context for selecting any of a predefined set of applications,including a plurality of second applications.
 16. A computer programproduct for use in conjunction with a portable device, the computerprogram product comprising a computer readable storage medium and acomputer program mechanism embedded therein, the computer programmechanism comprising instructions for: displaying a current applicationcontext of an application in an application display region of a display;displaying a navigation bar adjacent to the application display region,including displaying in the navigation bar a list of indicators ofrecently navigated application contexts of the application including anindicator of the current application context; upon detecting usernavigation to a first application context corresponding to anapplication context preceding the current application context; shiftingoperation of the portable device to the first application context,including removing the indicator of the current application context fromthe list; and upon detecting user navigation of a second applicationcontext corresponding to an application context succeeding the currentapplication context, shifting operation of the portable device to thesecond application context, including appending an indicator of thesecond application context to the list and displaying the indicator ofthe second application context in the navigation bar.
 17. A graphicaluser interface for a portable electronic device, comprising: anapplication display region that displays a current application contextof an application; a navigation bar adjacent to the application displayregion, the navigation bar including at least three horizontallyadjacent regions, comprising a current context region for displaying anindicator of the current application context, a prior context region fordisplaying an indicator of an application context preceding the currentapplication context, and a link region for displaying an indicator of athird application context; wherein the application display regionsimulates shifting of the application display in a first direction upondetecting user selection of the prior context region, and simulatesshifting of the application display in a second direction, opposite thefirst direction, upon detecting user selection of the link region.
 18. Agraphical user interface for a portable electronic device, comprising:an application display region that displays a current applicationcontext of an application; a navigation bar adjacent to the applicationdisplay region, the navigation bar including two horizontally adjacentregions, comprising a current context region for displaying an indicatorof the current application context and a prior context region fordisplaying an indicator of an application context preceding the currentapplication context; wherein the application display region simulatesshifting of the application display in a first direction upon detectinguser selection of the prior context region, and simulates shifting ofthe application display in a second direction, opposite the firstdirection, upon detecting user selection of an application contextdifferent from the current application context and the prior applicationcontext.